package com.example.pedidos_cliente;

import java.util.ArrayList;
import java.util.List;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;

import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;

import com.example.pedidos_cliente.beans.Comanda;
import com.example.pedidos_cliente.beans.ItemComanda;
import com.example.pedidos_cliente.util.FazerPedido;
import com.example.pedidos_cliente.util.ItemComandaAdapter;
import com.example.pedidos_cliente.util.XMLParser;

public class MainActivity extends ListActivity {

	static final String URL = "http://192.168.43.122/restauranteandroid/pedidos.php";
	private static final int ADICIONAR_PEDIDO = 1;
	private static final int ENVIAR_PEDIDO = 2;
	static final String KEY_ITEM = "pedido";
	static final String KEY_NOME = "nome";
	static final String KEY_DESCRICAO = "descricao";
	static final String KEY_FOTO = "foto";
	static final String KEY_PRECO = "preco";
	static final String KEY_QUANTIDADE = "quantidade";
	static final String KEY_OBS = "obs";
	private static Comanda comanda = new Comanda();
	private static Integer idMesa = 1;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		// setContentView(R.layout.activity_main);
		FazerPedido.abrirMesa(idMesa);
		atualizarPedidos();
	}

	private void atualizarPedidos() {
		List<ItemComanda> itens = new ArrayList<ItemComanda>();
		String url = URL + "?mesa=" + idMesa;
		XMLParser parser = new XMLParser();
		String xml = parser.getXmlFromUrl(url);
		Document doc = parser.getDomElement(xml);
		NodeList nl = doc.getElementsByTagName(KEY_ITEM);

		for (int i = 0; i < nl.getLength(); i++) {
			Element e = (Element) nl.item(i);

			ItemComanda item = new ItemComanda();
			item.getProduto().setNome(parser.getvalue(e, KEY_NOME));
			item.getProduto().setDescricao(parser.getvalue(e, KEY_DESCRICAO));
			item.getProduto().setPreco(parser.getvalue(e, KEY_PRECO));
			item.setObs(parser.getvalue(e, KEY_OBS));
			item.setQuant(Integer.parseInt(parser.getvalue(e, KEY_QUANTIDADE)));
			itens.add(item);
		}
		comanda.setItens(itens);
		ItemComandaAdapter adapter = new ItemComandaAdapter(getApplication(),
				comanda.getItens());
		
		setListAdapter(adapter);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		super.onCreateOptionsMenu(menu);
		
		MenuItem adicionar = menu.add(0, ADICIONAR_PEDIDO, 0, "Adicionar");
		adicionar.setIcon(R.drawable.adicionar);
//		MenuItem enviar = menu.add(0, ENVIAR_PEDIDO, 0, "Enviar");
//		enviar.setIcon(R.drawable.send_menu);
		return true;
	}

	@Override
	public boolean onMenuItemSelected(int featureId, MenuItem item) {
		switch (item.getItemId()) {
		case ADICIONAR_PEDIDO:
			startActivityForResult(new Intent(this, ListaProdutos.class),
					ADICIONAR_PEDIDO);
			break;

		case ENVIAR_PEDIDO:
			break;
		}

		return true;
	}

	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		super.onActivityResult(requestCode, resultCode, data);
		if (resultCode == RESULT_OK) {
			atualizarPedidos();
		}
	}

	public static Comanda getComanda() {
		return comanda;
	}

	public static Integer getIdMesa() {
		return idMesa;
	}
}
